package com.example.demo.controller;

import com.example.demo.mapper.LodopMapper;
import com.example.demo.vo.A.BraidTxt;
import com.example.demo.vo.A.Style;
import com.example.demo.vo.B.BraidTable;
import com.example.demo.vo.B.Columns;
import com.example.demo.vo.B.ColumnsAttr;
import com.example.demo.vo.B.DefaultValue;
import com.example.demo.vo.FatherDemo;
import com.example.demo.vo.Lodop;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/demo")
public class LodopController {

    @Autowired
    private LodopMapper lodopMapper;

    @ApiOperation(value = "接口名称", notes = "标签说明", produces = MediaType.APPLICATION_JSON_VALUE)
    @PostMapping("/getDemo")
    public Lodop getDemo(){
        List<FatherDemo> list = new ArrayList<>();
        // 公共属性赋值
        BraidTxt braidTxt = new BraidTxt();
        braidTxt.setType("braid-txt");
        braidTxt.setName("九洲");
        braidTxt.setValue("出库单号");
        braidTxt.setUuid("54cadddddd");

        // style
        Style style = new Style();
        style.setZIndex(0);
        style.setAlignment("center");
        style.setItemType(1);
        braidTxt.setStyle(style);

        // 添加到list
        list.add(braidTxt);

        /*List<String> strings = new ArrayList<>();
        strings.add("aaaa");
        strings.add("bbbb");
        strings.add("cccc");*/
        BraidTable braidTable = new BraidTable();
        // 基本属性赋值
        braidTable.setValue("出库商品明细");
        braidTable.setUuid("ckc11111");
        braidTable.setType("braid-table");
        braidTable.setTabelHtml("");

        // DefaultValueList
        List<DefaultValue> DefaultValueList = new ArrayList<DefaultValue>();
        // 1
        DefaultValue defaultValue = new DefaultValue();
        defaultValue.setProductName("苹果");
        defaultValue.setSnCode("[qpppdadfsa]");
        defaultValue.setSkuName("iphone11pro256g");
        defaultValue.setPrice("1000");

        // 2
        DefaultValue defaultValue2 = new DefaultValue();
        defaultValue2.setProductName("苹果2");
        defaultValue2.setSnCode("[qpppdadfsa]");
        defaultValue2.setSkuName("iphone12");
        defaultValue2.setPrice("2000");
        // list
        DefaultValueList.add(defaultValue);
        DefaultValueList.add(defaultValue2);
        braidTable.setDefaultValue(DefaultValueList);

        // columnsAttrList
        List<ColumnsAttr> ColumnsAttrList = new ArrayList<ColumnsAttr>();
        // 1
        ColumnsAttr columnsAttr = new ColumnsAttr();
        columnsAttr.setTitle("产品名称");
        columnsAttr.setValue("{产品名称}");
        columnsAttr.setName("productName");
        // 2
        ColumnsAttr columnsAttr2 = new ColumnsAttr();
        columnsAttr2.setTitle("sku名称");
        columnsAttr2.setValue("{sku名称}");
        columnsAttr2.setName("skuName");
        // 3
        ColumnsAttr columnsAttr3 = new ColumnsAttr();
        columnsAttr3.setTitle("规格型号");
        columnsAttr3.setValue("{规格型号}");
        columnsAttr3.setName("specModel");

        // list
        ColumnsAttrList.add(columnsAttr);
        ColumnsAttrList.add(columnsAttr2);
        ColumnsAttrList.add(columnsAttr3);
        braidTable.setColumnsAttrs(ColumnsAttrList);

        // columnsList
        List<Columns> columnsList = new ArrayList<Columns>();
        // columns
        Columns columns = new Columns();
        columns.setTitle("产品名称");
        columns.setValue("{产品名称}");
        columns.setName("productName");

        // 2
        Columns columns2 = new Columns();
        columns2.setTitle("sku名称");
        columns2.setValue("{sku名称}");
        columns2.setName("skuName");
        // 3
        Columns columns3 = new Columns();
        columns3.setTitle("规格型号");
        columns3.setValue("{规格型号}");
        columns3.setName("specModel");

        columnsList.add(columns);
        columnsList.add(columns2);
        columnsList.add(columns3);
        braidTable.setColumns(columnsList);

        // style
        Style style2 = new Style();
        style2.setZIndex(0);
        style2.setAlignment("center");
        style2.setItemType(1);
        braidTable.setStyle(style2);

        // 添加到list
        list.add(braidTable);
        Lodop lodop = new Lodop();
        lodop.setDefault("true");
        lodop.setTitle("出库单示例");
        lodop.setFatherDemo(list);

        lodopMapper.add(lodop);
        return lodop;
    }
    @ApiOperation(value = "接口名称", notes = "标签说明", produces = MediaType.APPLICATION_JSON_VALUE)
    @GetMapping("/selectAll")
    public List<Lodop> selectAll(){
        return lodopMapper.selectAll();
    }
}
